$(document).ready(function(){
    $('#windows').append('<div id="sym_setup_window_symbiont_add"></div>');
    $('#sym_setup_window_symbiont_add').dialog({
        autoOpen: false,
        modal: true,
        width: 300,
        buttons: {
            "Ok": function() { 
                $(this).dialog("close"); 
            }, 
            "Cancel": function() { 
                $(this).dialog("close"); 
            } 
        }
    });
    $('.sym_setup .symbiosis-button-add').click(function(){
        $('#sym_setup_window_symbiont_add').dialog('open');
    });
    
    $('#sym_setup_tabs').tabs();
    libraries=[];
    $('.sym_setup #libraries .update')
    .click(function(){
        name=$(this).parent().find('.name').html();
        version=$(this).parent().find('.version').html();
        t=$(this).parent();
        $.ajax({
            'url': $.symbiosis.url+"/symbionts/setup/ajax/libraries_get.php",
            'data':{
                'library': name,
                'version': version
            },
            'success':function(r){
                if(r.ok!=undefined){
                    t.find('.version').html(r.version);
                    t.find('.info').html(r.ok).css('color','green').fadeIn();
                    t.find('.update').fadeOut();
                }
                else if(r.error!=undefined){
                    r.find('.info').html(r.error).css('color','red').fadeIn();
                }
            }
        });
    });
    $('#libraries .library').hover(function(){
        $(this).css('color', 'black');
    },function(){
        $(this).css('color', 'grey');
    });
    
    $('.sym_setup #symbionts .update')
    .click(function(){
        name=$(this).parent().find('.name').html();
        version=$(this).parent().find('.version').html();
        t=$(this).parent();
        $.ajax({
            'url': $.symbiosis.url+"/symbionts/setup/ajax/symbionts_get.php",
            'data':{
                'symbiont': name,
                'version': version
            },
            'success':function(r){
                if(r.ok!=undefined){
                    t.find('.version').html(r.version);
                    t.find('.info').html(r.ok).css('color','green').fadeIn();
                    t.find('.update').fadeOut();
                }
                else if(r.error!=undefined){
                    r.find('.info').html(r.error).css('color','red').fadeIn();
                }
            }
        });
    });
    
    $('#symbionts .symbiont').hover(function(){
        $(this).css('color', 'black');
    },function(){
        $(this).css('color', 'grey');
    });
    
    $('.sym_setup #libraries .name')
    .each(function(){
        libraries.push($(this).text());
    });
    
    $.ajax({
        'url': $.symbiosis.url+"symbionts/setup/ajax/libraries_check.php",
        'data':{
            'libraries': libraries
        },
        'success':function(r){
            $('.sym_setup #libraries .library').each(function(){
                version=$(this).find('.version').text();
                server=r[$(this).index()];
                if(cv(version, server)==-1){
                    $(this).find('.update').html($(this).find('.update').html()+' ('+server+')').show().button();
                }
            });
        }
    });
    
    
    $.ajax({
        'url': $.symbiosis.url+"symbionts/setup/ajax/symbionts_check.php",
        'success':function(r){
            $('.sym_setup #symbionts .symbiont').each(function(){
                name=$(this).find('.name').text();
                version=$(this).find('.version').text();
                server=r[name];
                if(server!=undefined){
                    if(cv(version, server)==-1){
                        $(this).find('.update').html($(this).find('.update').html()+' ('+server+')').show().button();
                    }
                }
            });
        }
    });
    
});
function cv(a, b){
    a=a.split('.');
    b=b.split('.');
    t=0;
    for(k in a){
        if(a[k]>b[k]){
            t=1;
            break;
        }
        if(a[k]<b[k]){
            t=-1;
            break;
        }
    }
    return t;
}